#include <stdint.h>
#include "x64Emitter.h"


int main(int argc, char* argv[])
{
    uint8_t pbTest[1000];
    x64Emitter x64(static_cast<void*>(pbTest), 1000);

    // imul rax, [rcx], 1234
    x64.IMUL(RAX, *(RCX), 1234);

    // add rcx, 0x11
    x64.ADD(RCX, 0x11);

    // testLabel:
    Label testLabel;
    x64.LABEL(&testLabel);

    // add rbx, r10
    x64.ADD(RBX, R10);

    // ja label
    x64.JA(testLabel);

    // mov [r8 + r9 * 4 - 300], r13
    x64.MOV(*(R8 + R9 * 4 - 300), R13);

    // mov [rbp], rax
    x64.MOV(*(RBP), RAX);

    // add r12, [rbx + 8 * r8]
    x64.ADD(R12, *(RBX + R8 * 8));


    return 0;
}
